/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.asportoonline.business.beans;

import java.util.List;
import javax.ejb.Local;
import org.asportoonline.entities.Cliente;


/**
 *
 * @author fe
 */
@Local
public interface ClienteManager {

    /**
     * Inserisce un nuovo Cliente, che deve avere un email univoca.
     * 
     * @param c Cliente da inserire 
     * @see Cliente
     */
    void inserisciCliente(Cliente c);

    /**
     * Cerca tutti i Clienti presenti nel database.
     * 
     * @return restituisce una lista contenente tutti i Clienti presenti nel database; 
     * se non ce ne sono restituisce null.
     * @see Cliente
     */
    List<Cliente> elencoClienti();

    /**
     * Cerca un Cliente in base all'ID.
     * 
     * @param id ID del cliente.
     * @return se l'ID esiste restituisce il Cliente, altrimenti restituisce null.
     * @see Cliente
     */
    Cliente cercaCliente(long id);
    
    /**
     * Cerca un Cliente in base all'email; l'email è univoca.
     * 
     * @param email 
     * @return se l'email esiste restituisce il Cliente, altrimenti restituisce null.
     * @see Cliente
     */
    Cliente cercaCliente(String email);

    /**
     * Modifica un cliente esistente.
     * 
     * @param cliente 
     * @see Cliente
     */
    void aggiornaCliente(Cliente cliente);
}
